import service from "@/utils/request";
import type { IResPage } from "@/api/api";

//SKU 图片结构
export interface ISKUImage {
  // 图片ID
  id: number;
  // SPU的ID
  spuId: number;
  // 图片名称
  imgName: string;
  // 图片URL
  imgUrl: string;
  // 是否为默认图片
  isDefault: boolean;
}

//平台属性
export interface ISKUAttrValue {
  // 平台属性ID
  attrId: number;
  // 平台属性值ID
  valueId: number;
}

//销售属性
export interface ISKUSaleAttrValue {
  // 销售属性ID
  saleAttrId: number;
  // 销售属性值ID
  saleAttrValueId: number;
}

//添加需要的数据结构
export interface IAddSKU {
  // 所属SPU的ID
  spuId: number;
  // 所属品牌ID
  tmId: number;
  // 所属分类ID
  category3Id: number;

  // SKU名称
  skuName: string;
  // 价格
  price: number;
  // 重量
  weight: number;
  // sku规格描述
  skuDesc: string;
  // sku默认图片
  skuDefaultImg: string;
  // sku图片列表
  skuImageList: ISKUImage[];
  // 平台属性
  skuAttrValueList: ISKUAttrValue[];
  // 销售属性
  skuSaleAttrValueList: ISKUSaleAttrValue[];
}

//SKU类型
export interface ISKU {
  // SKU的ID
  id: number;
  // 所属SPU的ID
  spuId: number;
  // 价格
  price: number;
  // SKU名称
  skuName: string;
  // SKU规格描述
  skuDesc: string;
  // 重量
  weight: number;
  // 所属品牌ID
  tmId: number;
  // 所属分类ID
  category3Id: number;
  // 默认图片
  skuDefaultImg: string;
  // 是否上架
  isSale: boolean;
  // 创建时间
  createTime: string;
}

export interface ISKUAttrValueDetail extends ISKUAttrValue {
  // ID
  id: number;
  // 所属SKU的ID
  skuId: number;
  // 属性名称
  attrName: string;
  // 值
  valueName: string;
}

export interface ISKUSaleAttrValueDetail extends ISKUSaleAttrValue {
  // ID
  id: number;
  // 所属SKU的ID
  skuId: number;
  // 所属SPU的ID
  spuId: number;
  // 销售属性名称
  saleAttrName: string;
  // 销售属性值
  saleAttrValueName: string;
}

export interface ISKUDetail extends ISKU {
  // 图片列表
  skuImageList: ISKUImage[];
  // 平台属性列表
  skuAttrValueList: ISKUAttrValueDetail[];
  // 销售属性列表
  skuSaleAttrValueList: ISKUSaleAttrValueDetail[];
}
/**
 * 提交 sku
 * {
 *  skuAttrValueList: [
 *      {
 *          attrId: 1,
 *          valueId: 2
 *      },
 *      {
 *          attrId: 2,
 *          valueId: 5
 *      },
 *      {
 *          attrId: 4,
 *          valueId: 20
 *      }
 *  ]
 * }
 * @param data
 * @returns
 */

export function requestSaveSKUInfo(data: IAddSKU) {
  return service.post<any, null>(`/product/saveSkuInfo`, data);
}

//获取指定 SPU 下的 SKU 列表

export function requestSKUList(id: number) {
  return service.get<any, ISKU[]>(`/product/findBySpuId/${id}`);
}

//获取所有的 SKU 列表（带分页）
export function requestSKUListByPage(page = 1, limit = 5) {
  return service.get<any, IResPage<ISKU>>(`/product/list/${page}/${limit}`);
}

//上架指定的商品
export function requestOnSale(id: number) {
  return service.get(`/product/onSale/${id}`);
}

//下架指定的商品
export function requestCancelSale(id: number) {
  return service.get(`/product/cancelSale/${id}`);
}

//删除指定的商品
export function requestDelete(id: number) {
  return service.delete(`/product/deleteSku/${id}`);
}

// 获取指定id的sku信息
export function requestSKUById(id: number) {
  return service.get<any, ISKUDetail>(`/product/getSkuById/${id}`);
}
